#ifndef __COMQUEUE_H__
#define __COMQUEUE_H__

#include "../seqstack/seqstack.h"
#include "../linkstack/linkstack.h"

typedef void ComQueue;
typedef void ComQueueNode;

typedef struct _tag_ComQueue
{
    SeqStack *enStack;
    LinkStack *deStack;

} TComQueue;

typedef struct func_ComQueue
{
    ComQueue *(*create)();
    int (*destroy)(ComQueue *);
    int (*clear)(ComQueue *);
    int (*length)(ComQueue *);
    int (*append)(ComQueue *, ComQueueNode *);
    ComQueueNode *(*header)(ComQueue *);
    ComQueueNode *(*subtract)(ComQueue *);

    int (*capacity)(ComQueue *);

} func_ComQueue;

#endif
